package org.dtrd.modules.common.service.impl;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dtrd.modules.common.entity.bean.WechatQrcodeDetail;
import org.dtrd.modules.common.entity.po.DtrdEntRdWechatQrcode;
import org.dtrd.modules.common.mapper.DtrdEntRdWechatQrcodeMapper;
import org.dtrd.modules.common.service.IDtrdEntRdWechatQrcodeService;
import org.springframework.stereotype.Service;


/**
 * <p>
 * 服务实现类
 * </p>
 *
 * @author xiao
 * @since 2022-06-01
 */
@DS("multi-datasource1")
@Service
public class DtrdEntRdWechatQrcodeServiceImpl extends ServiceImpl<DtrdEntRdWechatQrcodeMapper, DtrdEntRdWechatQrcode> implements IDtrdEntRdWechatQrcodeService {

    @Override
    public DtrdEntRdWechatQrcode getWechatQrcode(String openId, Integer qrcodeType) {
        LambdaQueryWrapper<DtrdEntRdWechatQrcode> wrapper = baseQueryWrapper().eq(DtrdEntRdWechatQrcode::getWxOaOpenId, openId).eq(DtrdEntRdWechatQrcode::getWxOaQrcodeType, qrcodeType).last(" limit 1");
        return getOne(wrapper);
    }

    @Override
    public boolean saveOrUpdateWechatQrcode(WechatQrcodeDetail dto) {
        DtrdEntRdWechatQrcode dtrdEntRdWechatQrcode = new DtrdEntRdWechatQrcode();
        if (dto.getDataId() == null) {
            dtrdEntRdWechatQrcode = dtrdEntRdWechatQrcode.init();
        }
        dtrdEntRdWechatQrcode.parseFromDto(dto);
        return saveOrUpdate(dtrdEntRdWechatQrcode);
    }

    private LambdaQueryWrapper<DtrdEntRdWechatQrcode> baseQueryWrapper() {
        return Wrappers.lambdaQuery(DtrdEntRdWechatQrcode.class)
                .eq(DtrdEntRdWechatQrcode::getIsDel, 0);
    }

    private LambdaUpdateWrapper<DtrdEntRdWechatQrcode> baseUpdateWrapper() {
        return Wrappers.lambdaUpdate(DtrdEntRdWechatQrcode.class)
                .eq(DtrdEntRdWechatQrcode::getIsDel, 0);
    }
}
